// JavaScript Document

var turnplate = {
	restaraunts: [], //大转盘奖品名称
	colors: [], //大转盘奖品区块对应背景颜色
	//fontcolors:[],				//大转盘奖品区块对应文字颜色
	outsideRadius: 222, //大转盘外圆的半径
	textRadius: 165, //大转盘奖品位置距离圆心的距离
	insideRadius: 65, //大转盘内圆的半径
	startAngle: 0, //开始角度
	bRotate: false, //false:停止;ture:旋转
	status: false //是否中过奖
};

$(document).ready(function() {
	var cishu = 100; //初始次数，由后台传入
	//$('#cishu').html(cishu); //显示还剩下多少次抽奖机会

	//动态添加大转盘的奖品与奖品区域背景颜色
	turnplate.restaraunts = ["10元红包(满50元可用)", "谢谢参与", "5元红包(满15元可用)", "谢谢参与", "免单", "茶具一套", "3元红包(满10元可用)", "谢谢参与"];
	turnplate.colors = ["#FF8584", "#FFEE7B", "#FF8584", "#FFEE7B", "#FF8584", "#FFEE7B", "#FF8584", "#FFEE7B"];

	var rotateTimeOut = function() {
		$('#wheelcanvas').rotate({
			angle: 0,
			animateTo: 2160,
			duration: 6000,
			callback: function() {
				alert('网络超时，请检查您的网络设置！');
			}
		});
	};

	//旋转转盘 item:奖品位置; txt：提示语;
	var rotateFn = function(item, txt) {
		var angles = item * (360 / turnplate.restaraunts.length) - (360 / (turnplate.restaraunts.length * 2));
		if(angles < 270) {
			angles = 270 - angles;
		} else {
			angles = 360 - angles + 270;
		}
		$('#wheelcanvas').stopRotate();
		$('#wheelcanvas').rotate({
			angle: 0,
			animateTo: angles + 1800,
			duration: 1000,
			callback: function() {
				//中奖页面与谢谢参与页面弹窗
				if(txt.indexOf("谢谢参与") >= 0) {
					$(".texts").html("就差一点啦，很遗憾");
				} else {
					$("#zj-main").fadeIn();
					var resultTxt = txt.replace(/[\r\n]/g, ""); //去掉回车换行
					$(".texts").html("恭喜您，已获得<br>" + resultTxt);
					turnplate.status = true;
				}
				$(".zz").show();
				$(".jl-tk").show();
				$(".cjgz-c").on('click', function() {
					$(".zz").hide();
					$(".jl-tk").hide();
                    //history.back();
				});
				$(".ok-img").on('click', function() {
					$(".zz").hide();
					$(".jl-tk").hide();
                    //history.back();
				});
				turnplate.bRotate = !turnplate.bRotate;

			}
		});
	};

	/********弹窗页面控制**********/

	$(".cjgz-c").on('click', function() {
		$(".wcs").hide();
		$(".zz").hide();
	});

	//中奖纪录
	$("#zjjl").on('click', function() {
		$(".zz").show();
		$(".zj").show();
	});
	$(".cjgz-c").on('click', function() {
		$(".zz").hide();
		$(".zj").hide();
	});
	
	/********抽奖开始**********/
	$('#tupBtn').click(function() {
		if(turnplate.bRotate) return;

		if(cishu <= 0) { //当抽奖次数为0的时候执行
			$(".zz").show();
			$(".wcs").show();
			$(".ok-img").on('click', function() {
				$(".wcs").hide();
				$(".zz").hide();
			});
			//$('#cishu').html(0); //次数显示为0
			//isture = false;
		} else { //还有次数就执行
			cishu = cishu - 1; //执行转盘了则次数减1
			if(cishu <= 0) {
				cishu = 0;
			}
			//$('#cishu').html(cishu);
			turnplate.bRotate = !turnplate.bRotate;
			//获取随机数(奖品个数范围内)
			var item = 0;
			var count = $("#cishu").val();
			console.log(count);
			if(count >= 3) {
				if(!turnplate.status) { //未中奖状态
                    item = rnd(1, turnplate.restaraunts.length);
				} else {
                    var random = rnd(1, turnplate.restaraunts.length);
                    if(random < 4) {
                        item = 2;
                    } else if (random < 7) {
                        item = 4;
                    } else {
                        item = 8;
                    }
				}
			}else{
                var random = rnd(1, turnplate.restaraunts.length);
                if(random < 4) {
                    item = 2;
                } else if (random < 7) {
                    item = 4;
                } else {
                    item = 8;
                }
			}

			//奖品数量等于10,指针落在对应奖品区域的中心角度[252, 216, 180, 144, 108, 72, 36, 360, 324, 288]
			rotateFn(item, turnplate.restaraunts[item - 1]);
			
		}
	})

});

function rnd(n, m) {
	var random = Math.floor(Math.random() * (m - n + 1) + n);
	return random;

}

//页面所有元素加载完毕后执行drawRouletteWheel()方法对转盘进行渲染
window.onload = function() {
	drawRouletteWheel();
};

function drawRouletteWheel() {
	var canvas = document.getElementById("wheelcanvas");
	if(canvas.getContext) {
		//根据奖品个数计算圆周角度
		var arc = Math.PI / (turnplate.restaraunts.length / 2);
		var ctx = canvas.getContext("2d");
		//在给定矩形内清空一个矩形
		ctx.clearRect(0, 0, 516, 516);
		//strokeStyle 属性设置或返回用于笔触的颜色、渐变或模式  
		ctx.strokeStyle = "#FFBE04";
		//font 属性设置或返回画布上文本内容的当前字体属性
		ctx.font = 'bold 22px Microsoft YaHei';
		for(var i = 0; i < turnplate.restaraunts.length; i++) {
			var angle = turnplate.startAngle + i * arc;
			ctx.fillStyle = turnplate.colors[i];
			ctx.beginPath();
			//arc(x,y,r,起始角,结束角,绘制方向) 方法创建弧/曲线(用于创建圆或部分圆)    
			ctx.arc(258, 258, turnplate.outsideRadius, angle, angle + arc, false);
			ctx.arc(258, 258, turnplate.insideRadius, angle + arc, angle, true);
			ctx.stroke();
			ctx.fill();
			//锁画布(为了保存之前的画布状态)
			ctx.save();

			//----绘制奖品开始----
			ctx.fillStyle = "#CB0030";
			//ctx.fillStyle = turnplate.fontcolors[i];
			var text = turnplate.restaraunts[i];
			var line_height = 30;
			//translate方法重新映射画布上的 (0,0) 位置
			ctx.translate(258 + Math.cos(angle + arc / 2) * turnplate.textRadius, 258 + Math.sin(angle + arc / 2) * turnplate.textRadius);

			//rotate方法旋转当前的绘图
			ctx.rotate(angle + arc / 2 + Math.PI / 2);

			/** 下面代码根据奖品类型、奖品名称长度渲染不同效果，如字体、颜色、图片效果。(具体根据实际情况改变) **/
			if(text.indexOf("\n") > 0) { //换行
				var texts = text.split("\n");
				for(var j = 0; j < texts.length; j++) {
					ctx.font = j == 0 ? 'bold 22px Microsoft YaHei' : 'bold 22px Microsoft YaHei';
					//ctx.fillStyle = j == 0?'#FFFFFF':'#FFFFFF';
					if(j == 0) {
						//ctx.fillText(texts[j]+"M", -ctx.measureText(texts[j]+"M").width / 2, j * line_height);
						ctx.fillText(texts[j], -ctx.measureText(texts[j]).width / 2, j * line_height);
					} else {
						ctx.fillText(texts[j], -ctx.measureText(texts[j]).width / 2, j * line_height);
					}
				}
			} else if(text.indexOf("\n") == -1 && text.length > 6) { //奖品名称长度超过一定范围 
				text = text.substring(0, 6) + "||" + text.substring(6);
				var texts = text.split("||");
				for(var j = 0; j < texts.length; j++) {
					ctx.fillText(texts[j], -ctx.measureText(texts[j]).width / 2, j * line_height);
				}
			} else {

				//在画布上绘制填色的文本。文本的默认颜色是黑色
				//measureText()方法返回包含一个对象，该对象包含以像素计的指定字体宽度
				ctx.fillText(text, -ctx.measureText(text).width / 2, 0);
			}

			//把当前画布返回(调整)到上一个save()状态之前 
			ctx.restore();
			//----绘制奖品结束----
		}
	}
}

function showDialog(id) {
	document.getElementById(id).style.display = "-webkit-box";
}

function showID(id) {
	document.getElementById(id).style.display = "block";
}

function hideID(id) {
	document.getElementById(id).style.display = "none";
}